package mvc_example.dao;

import mvc_example.model.Product;
import mvc_example.model.ProductData;

public class ProductDaoImpl implements ProductDao {
    //模拟数据源， 模拟数据库中的数据
    private Product[] products = ProductData.PRODUCTS;

    @Override
    public Product[] queryAllProducts() {
        //从数据库中，找PRODUCT表中所有的数据
        //并且把这些数据封装成Product对象，放到数组中，返回这个数组

        //可以自行排序一下null
        //遍历一下数据库数组中的数据，看一下有多少个不为null
        int count = 0;
        for (Product product : products) {
            if (product != null) {
                count++;
            }
        }

        //创建新的商品容器 数组
        Product[] arr = new Product[count];
        int index = 0;
        for (Product product : products) {
            if (product != null) {
                arr[index++] = product;
            }
        }
        return arr;

    }

    @Override
    public boolean createProduct(Product product) {
        boolean flag = false;
        //要添加的商品id不能重复
        //对现在的数据进行遍历
        for (Product p : products) {
            //比较一下是否有重复的id
            if(p != null) {
                if (p.getId() == product.getId()) {
                    //如果有不允许添加,返回false
                    return flag;
                }
            }
            break;
        }
        //如果没有 添加到数组中 返回true
        for (int i = 0; i < products.length; i++) {
            //找到一个等于null的位置把新的商品放入其中
            if(products[i] == null) {
                products[i] = product;
                flag = true;
                break;
            }

        }
        return flag;
    }
}
